GROUP BY Statement क्या हैं?
ग्रुप बाय स्टेटमेंट समान मूल्यों वाली पंक्तियों को सारांश पंक्तियों में समूहित करता है, जैसे "प्रत्येक देश में ग्राहकों की संख्या जानने के लिए"।
परिणाम-सेट को एक या अधिक कॉलम द्वारा समूहीकृत करने के लिए ग्रुप बाय स्टेटमेंट का उपयोग अक्सर समग्र कार्यों (COUNT(), MAX(), MIN(), SUM(), AVG()) के साथ किया जाता है।
सिंटैक्स द्वारा समूह
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);
प्रदर्शन डेटाबेस
नीचे नॉर्थविंड नमूना डेटाबेस में "ग्राहक" तालिका से एक चयन है:
ग्राहक तालिका
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
| 1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados... | Ana Trujillo | Avda. Constitución| México | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México | 05023 | Mexico |
| 4 | Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
| 5 | Berglunds snabbköp | Christina Berg | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
उदाहरणों द्वारा एसक्यूएल ग्रुप
निम्नलिखित SQL कथन प्रत्येक देश में ग्राहकों की संख्या सूचीबद्ध करता है:
उदाहरण
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;
निष्कर्ष
निम्नलिखित SQL कथन प्रत्येक देश में ग्राहकों की संख्या को उच्चतम से निम्नतम तक क्रमबद्ध करता है:
उदाहरण
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;
निष्कर्ष
अतिरिक्त प्रदर्शन डेटाबेस
नॉर्थविंड नमूना डेटाबेस में "ऑर्डर" तालिका से एक चयन:
आदेश तालिका
+---------+------------+-----------+------------+------------+
| OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
+---------+------------+-----------+------------+------------+
| 10248 | 90 | 5 | 1996-07-04 | 3 |
| 10249 | 81 | 6 | 1996-07-05 | 1 |
| 10250 | 34 | 4 | 1996-07-08 | 2 |
+---------+------------+-----------+------------+------------+
और "शिपर्स" तालिका से एक चयन:
शिपर्स शेड्यूल
+-----------+-------------------+
| ShipperID | ShipperName |
+-----------+-------------------+
| 1 | Speedy Express |
| 2 | United Package |
| 3 | Federal Shipping |
+-----------+-------------------+
जॉइन के साथ ग्रुप बाय का उदाहरण
निम्नलिखित SQL कथन प्रत्येक शिपर द्वारा भेजे गए ऑर्डर की संख्या सूचीबद्ध करता है:
उदाहरण
SELECT Shippers.ShipperName, COUNT(Orders.OrderID) AS NumberOfOrders
FROM Orders
LEFT JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID
GROUP BY ShipperName;
निष्कर्ष
दृश्य प्रतिनिधित्व द्वारा समूह
मूल डेटा
समूहीकृत डेटा
टिप्पणी:GROUP BY सभी पंक्तियों को समान देश मानों के साथ समूहित करता है और प्रत्येक समूह के लिए समग्र फ़ंक्शन का उपयोग करता है।
Aggregate Functions
COUNT()
पंक्तियों की संख्या लौटाता है
SELECT COUNT(*)
FROM Customers
GROUP BY Country;
MAX()
अधिकतम मूल्य देता है
SELECT MAX(Price)
FROM Products
GROUP BY CategoryID;
MIN()
न्यूनतम मान लौटाता है
SELECT MIN(Price)
FROM Products
GROUP BY CategoryID;
SUM()
कुल राशि देता है
SELECT SUM(Quantity)
FROM OrderDetails
GROUP BY OrderID;
AVG()
औसत मान लौटाता है
SELECT AVG(Price)
FROM Products
GROUP BY CategoryID;
मल्टीपल कॉलम ग्रुप बाय
आप एक से अधिक कॉलम के आधार पर समूह बना सकते हैं:
उदाहरण
SELECT Country, City, COUNT(CustomerID)
FROM Customers
GROUP BY Country, City;
निष्कर्ष
नोट:
एकाधिक स्तंभों के आधार पर समूहीकरण करते समय, स्तंभ मानों के प्रत्येक अद्वितीय संयोजन के लिए अलग-अलग समूह बनाए जाते हैं।